package cn.bopomo.dealer.base.db;

import java.util.List;

import cn.bopomo.dealer.base.exception.SystemException;
import cn.bopomo.dealer.base.util.Page;
import cn.bopomo.dealer.base.vo.OperatorDetail;

public interface IOperatorDAO {

	/**
	 * 增加一个操作员
	 * @param od
	 * @return
	 */
	String insertOperator(OperatorDetail od);
	
	/**
	 * 更新一个操作员
	 * @param od
	 * @return
	 */
	
	String updateOperator(OperatorDetail od);
	
	/**
	 * 删除一个操作员
	 * @param od
	 * @return
	 */
	
	String deleteOperator(OperatorDetail od);
	
	
	/**
	 * 根据传入的操作员信息查找它的子操作员
	 * @param od
	 * @return
	 * @throws SystemException
	 */
	List selectOperatorsByParent(OperatorDetail od) throws SystemException;

	
	/**
	 * 分页查找当前操作员子类列表
	 * @param od
	 * @param pageSize
	 * @param rowsPerPage
	 * @return
	 * @throws SystemException
	 */
	public Page selectOperatorListByParent(OperatorDetail od, int pageSize, int rowsPerPage) throws SystemException;
	
	/**
	 * 根据传入的权限组的标签查找操作员列表
	 * @param tag
	 * @return
	 * @throws SystemException
	 */
	List selectOperatorsByAuthorize(String tag) throws SystemException;
	
	/**
	 * 根据传入的模块标签查找操作员列表
	 * @param tag
	 * @return
	 * @throws SystemException
	 */
	List selectOperatorsByModule(String tag) throws SystemException;
	
	/**
	 * 根据用户名和密码查找操作员明细
	 * @param loginName
	 * @param pwd
	 * @return
	 */
	//用来验证操作员登录操作
	OperatorDetail selectOperator(String loginName, String pwd);
	
	OperatorDetail selectOperator(Integer uid);
	
	/**
	 * 根据用户名查找是否有该操作员
	 * @param loginName
	 * @return
	 */
	//检验新建操作员的登录名称是否可用
	String selectOperator(String loginName);
	
	
}
